#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=5e5+10;
int cnt,cnta,cntb;
int vis[maxn];
vector <int> e[maxn];
void dfs(int k,int t)
{
vis[k]=t;cnt++;
for (auto i:e[k]) if (vis[i]!=t) dfs(i,t);
}
int main()
{
int T;scanf("%d",&T);
for (int t=1;t<=T;t++)
{
int n,m,a,b;scanf("%d%d%d%d",&n,&m,&a,&b);
for (int i=1;i<=n;i++) e[i].clear();
for (int i=1;i<=m;i++)
{
int x,y;scanf("%d%d",&x,&y);
e[x].push_back(y);
e[y].push_back(x);
}
vis[a]=t*2-1;cnt=1;dfs(b,t*2-1);cnta=n-cnt;
vis[b]=t*2;cnt=1;dfs(a,t*2);cntb=n-cnt;
printf("%lld\n",1ll*cnta*cntb);
}
return 0;
}
181A - Series of Crimes | 1638A - Reverse |
1654C - Alice and the Cake | 369A - Valera and Plates |
1626A - Equidistant Letters | 977D - Divide by three multiply by two |
1654B - Prefix Removals | 1654A - Maximum Cake Tastiness |
1649A - Game | 139A - Petr and Book |
1612A - Distance | 520A - Pangram |
124A - The number of positions | 1041A - Heist |
901A - Hashing Trees | 1283A - Minutes Before the New Year |
1654D - Potion Brewing Class | 1107B - Digital root |
25A - IQ test | 785A - Anton and Polyhedrons |
1542B - Plus and Multiply | 306A - Candies |
1651C - Fault-tolerant Network | 870A - Search for Pretty Integers |
1174A - Ehab Fails to Be Thanos | 1169A - Circle Metro |
780C - Andryusha and Colored Balloons | 1153A - Serval and Bus |
1487C - Minimum Ties | 1136A - Nastya Is Reading a Book |